package com.ftw.commons.utils

import java.text.DecimalFormat

/**
 * 描    述：
 * 作    者：fantianwen
 * 时    间：2020/2/27
 */
object SizeUtils {

    private val format = DecimalFormat("#.##")
    private const val MiB = (1024 * 1024).toLong()
    private const val KiB: Long = 1024


    /**
     * 根据文件大小转换为B、KB、MB、GB单位字符串显示
     * @param size 文件的大小（long型）
     * @return 返回 转换后带有单位的字符串
     */
    fun getFileSize(size: Long): String {


        val gb = 1024 * 1024 * 1024

        val mb = 1024 * 1024

        val kb = 1024


        //格式化小数
        val df = DecimalFormat("######0.00")

        if (size / gb >= 1) {
            return df.format(size / gb.toFloat()) + "GB"
        }

        if (size / mb >= 1) {
            return df.format(size / mb.toFloat()) + "MB"
        }

        if (size / kb >= 1) {
            return df.format(size / kb.toFloat()) + "KB"
        }

        return size.toString() + "B"
    }
}